%%=====================================================================================
%%
%%         File:  perl-hot-keys.tex
%%
%%  Description:  perl-support.vim : Key mappings for Vim without GUI.
%%                
%%                
%%       Author:  Dr.-Ing. Fritz Mehner
%%        Email:  mehner@fh-swf.de
%%    Copyright:  Copyright (C)  2003-2008  Dr.-Ing. Fritz Mehner  (mehner@fh-swf.de)
%%      Version:  see \Pluginversion
%%      Created:  06.06.2003
%%     Revision:  $Id: perl-hot-keys.tex,v 1.15 2008/12/17 07:58:07 mehner Exp $
%%                
%%        Notes:  
%%                
%%=====================================================================================

\documentclass[oneside,10pt,landscape,DIV16]{scrartcl}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lastpage}
\usepackage{multicol}
\usepackage{fancyhdr}

\setlength\parindent{0pt}

\newcommand{\Pluginversion}{4.0}
\newcommand{\ReleaseDate}{December 2008}

%%----------------------------------------------------------------------
%%  fancyhdr
%%----------------------------------------------------------------------
\pagestyle{fancyplain}
\fancyhf{}
\fancyhead[C]{\scriptsize }
\fancyfoot[L]{\small \ReleaseDate}
\fancyfoot[R]{\small \textbf{Page \thepage{} / \pageref{LastPage}}}
\renewcommand{\headrulewidth}{0.0pt}

%%----------------------------------------------------------------------
%%  luximono : Type1-font
%%  Makes keyword stand out by using semibold letters.
%%----------------------------------------------------------------------
\usepackage[scaled]{luximono}

%%----------------------------------------------------------------------
%%  hyperref
%%----------------------------------------------------------------------
\usepackage[ps2pdf]{hyperref}
\hypersetup{pdfauthor={Dr.-Ing. Fritz Mehner, FH Südwestfalen, Iserlohn, Germany}}
\hypersetup{pdfkeywords={Vim, Perl}}
\hypersetup{pdfsubject={Vim-plugin,  perl-support.vim, hot keys}}
\hypersetup{pdftitle={Vim-plugin,  perl-support.vim, hot keys}}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%  START OF DOCUMENT
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}%

\begin{multicols}{3}
%
\begin{center}
%
%%======================================================================
%%  title
%%======================================================================
\textbf{\textsc{\small{Vim-Plugin}}}\\
\textbf{\LARGE{perl-support.vim}}\\
\textbf{\textsc{\small{Version \Pluginversion}}}\\
\vspace{5mm}%
\textbf{\textsc{\Huge{Hot keys}}}\\ 
\vspace{5mm}%
Key mappings for Vim and gVim.\\
Plugin: http://vim.sourceforge.net\\
Fritz Mehner (mehner@fh-swf.de)\\
\vspace{1.0mm}
{\normalsize (i)} insert mode, {\normalsize (n)} normal mode, {\normalsize (v)} visual mode\\
\vspace{4.0mm}

%%======================================================================
%%  table, left part
%%======================================================================
%%~~~~~ TABULAR : begin ~~~~~~~~~~
\begin{tabular}[]{|p{11mm}|p{58mm}|}
%%----------------------------------------------------------------------
%%  show plugin help
%%----------------------------------------------------------------------
\hline
\multicolumn{2}{|r|}{\textsl{\textbf{L}oad / \textbf{U}nload Perl Support}} \\
\hline \verb'\lps'  & load menues  \hfill (n) \\
\hline \verb'\ups'  & unload menues\hfill (n) \\
\hline
%%----------------------------------------------------------------------
%%  show plugin help
%%----------------------------------------------------------------------
\hline 
\multicolumn{2}{|r|}{\textsl{\textbf{H}elp}}\\
\hline \verb'\hp'   & help (plugin) \hfill (n,i)\\
\hline 
%%----------------------------------------------------------------------
%%  menu comments
%%----------------------------------------------------------------------
\hline
\multicolumn{2}{|r|}{\textsl{\textbf{C}omments}} \\
\hline \verb'\cl'  & end-of-line comment               \hfill (n, v, i)\\
\hline \verb'\cj'  & adjust end-of-line comments       \hfill (n, v, i)\\
\hline \verb'\cs'  & set end-of-line comment col.      \hfill (n)    \\
\hline \verb'\cfr' & frame comment                     \hfill (n, i)  \\
\hline \verb'\cfu' & function description              \hfill (n, i)  \\
\hline \verb'\cm'  & module description                \hfill (n, i)  \\
\hline \verb'\ch'  & file header (.pl)                 \hfill (n)    \\
\hline \verb'\ce'  & file header (.pm)                 \hfill (n)    \\
\hline \verb'\ca'  & file header (.t)                  \hfill (n)    \\
\hline \verb'\cp'  & file header (.pod)                \hfill (n)    \\
\hline \verb'\ckb' & keyword comm. \verb'BUG'          \hfill (n, i)  \\
\hline \verb'\ckt' & keyword comm. \verb'TODO'         \hfill (n, i)  \\
\hline \verb'\ckr' & keyword comm. \verb'TRICKY'       \hfill (n, i)  \\
\hline \verb'\ckw' & keyword comm. \verb'WARNING'      \hfill (n, i)  \\
\hline \verb'\cko' & keyword comm. \verb'WORKAROUND'   \hfill (n, i)  \\
\hline \verb'\ckn' & keyword comm. \verb'new keyword'  \hfill (n, i)  \\
\hline \verb'\cc'  & code $\leftrightarrow$ comment    \hfill (n, v)  \\
\hline \verb'\cb'  & code block $\rightarrow$ comment  \hfill (n, v)  \\
\hline \verb'\cn'  & uncomment code block              \hfill (n)    \\
\hline \verb'\cd'  & date                              \hfill (n, i)  \\
\hline \verb'\ct'  & date \& time                      \hfill (n, i)  \\
\hline \verb'\cv'  & vim modeline                      \hfill (n, i)  \\
\hline
\end{tabular}\\
%%~~~~~ TABULAR :  end  ~~~~~~~~~~
%
%%======================================================================
%%  table, middle part
%%======================================================================
%
%%~~~~~ TABULAR : begin ~~~~~~~~~~
\begin{tabular}[]{|p{11mm}|p{58mm}|}
%%----------------------------------------------------------------------
%%  menu statements
%%----------------------------------------------------------------------
\hline
\multicolumn{2}{|r|}{\textsl{\textbf{S}tatements}} \\
\hline \verb'\sd'  & \verb'do { } while'               \hfill (n, v, i)\\
\hline \verb'\sf'  & \verb'for { }'                    \hfill (n, v, i)\\
\hline \verb'\sfe' & \verb'foreach { }'                \hfill (n, v, i)\\
\hline \verb'\sei' & \verb'elsif { }'                  \hfill (n, v, i)\\
\hline \verb'\si'  & \verb'if { }'                     \hfill (n, v, i)\\
\hline \verb'\sie' & \verb'if { } else { }'            \hfill (n, v, i)\\
\hline \verb'\su'  & \verb'unless { }'                 \hfill (n, v, i)\\
\hline \verb'\sue' & \verb'unless { } else { }'        \hfill (n, v, i)\\
\hline \verb'\st'  & \verb'until { }'                  \hfill (n, v, i)\\
\hline \verb'\sw'  & \verb'while { }'                  \hfill (n, v, i)\\
\hline \verb'\s{'  & \verb'{ }'                        \hfill (n, v, i)\\
\hline
%%----------------------------------------------------------------------
%%  snippet menu
%%----------------------------------------------------------------------
\hline
\multicolumn{2}{|r|}{\textsl{S\textbf{n}ippet}} \\
\hline \verb'\nr'  & read code snippet                 \hfill (n)\\
\hline \verb'\nw'  & write code snippet                \hfill (n, v)\\
\hline \verb'\nw'  & edit code snippet                 \hfill (n)\\
%
\hline \verb'\ntl' & edit local templates      \hfill (n)\\
\hline \verb'\ntg' & edit global templates     \hfill (n)\\
\hline \verb'\ntr' & reread the templates      \hfill (n)\\
\hline
%%----------------------------------------------------------------------
%%  menu regex menu
%%----------------------------------------------------------------------
\hline
\multicolumn{2}{|r|}{\textsl{Regular E\textbf{x}pressions}} \\
\hline \verb'\xr' &  pick up Regex             \hfill (n, v)\\
\hline \verb'\xs' &  pick up string            \hfill (n, v)\\
\hline \verb'\xf' &  pick up flag(s)           \hfill (n, v)\\
\hline \verb'\xm' &  match                     \hfill (n)\\
\hline \verb'\xe' &  explain Regex             \hfill (n, v)\\
\hline
%%----------------------------------------------------------------------
%%  menu idioms
%%----------------------------------------------------------------------
\hline
\multicolumn{2}{|r|}{\textsl{\textbf{I}dioms}}   \\
\hline \verb'\$'   & \verb'my $;'              \hfill (n, i)\\
\hline \verb'\$='  & \verb'my $ = ;'           \hfill (n, i)\\
\hline \verb'\$$'  & \verb'my ( $, $ );'       \hfill (n, i)\\
\hline \verb'\@'   & \verb'my @;'              \hfill (n, i)\\
\hline \verb'\@='  & \verb'my @ = (,,);'       \hfill (n, i)\\
\hline \verb'\%'   & \verb'my %;'              \hfill (n, i)\\
\hline \verb'\%='  & \verb'my % = (=>,=>,);'   \hfill (n, i)\\
\hline \verb'\ir'  & \verb'my $rgx_ = q//;'    \hfill (n, i)\\
\hline \verb'\im'  & \verb'$ =~ m//xm'         \hfill (n, i)\\
\hline \verb'\is'  & \verb'$ =~ s///xm'        \hfill (n, i)\\
\hline \verb'\it'  & \verb'$ =~ tr///xm'       \hfill (n, i)\\
\hline \verb'\isu' & \verb'subroutine'         \hfill (n, v, i)\\
\hline \verb'\ip'  & \verb'print "...\n";'     \hfill (n ,i)\\
\hline \verb'\ii'  & open input file           \hfill (n, v, i)\\
\hline \verb'\io'  & open output file          \hfill (n, v, i)\\
\hline \verb'\ipi' & open pipe                 \hfill (n, v, i)\\
\hline
\end{tabular}\\
%%~~~~~ TABULAR :  end  ~~~~~~~~~~
%
%%======================================================================
%%  table, right part
%%======================================================================
%
%%~~~~~ TABULAR : begin ~~~~~~~~~~
\begin{tabular}[]{|p{11mm}|p{58mm}|}
%%----------------------------------------------------------------------
%%  menu Posix character classes
%%----------------------------------------------------------------------
\hline
\multicolumn{2}{|r|}{\textsl{\textbf{P}OSIX Character Classes}} \\
\hline \verb'\pa' &  \verb'[:alnum:] '         \hfill (n, i)\\
\hline \verb'\ph' &  \verb'[:alpha:] '         \hfill (n, i)\\
\hline \verb'\pi' &  \verb'[:ascii:] '         \hfill (n, i)\\
\hline \verb'\pb' &  \verb'[:blank:] '         \hfill (n, i)\\
\hline \verb'\pc' &  \verb'[:cntrl:] '         \hfill (n, i)\\
\hline \verb'\pd' &  \verb'[:digit:] '         \hfill (n, i)\\
\hline \verb'\pg' &  \verb'[:graph:] '         \hfill (n, i)\\
\hline \verb'\pl' &  \verb'[:lower:] '         \hfill (n, i)\\
\hline \verb'\pp' &  \verb'[:print:] '         \hfill (n, i)\\
\hline \verb'\pn' &  \verb'[:punct:] '         \hfill (n, i)\\
\hline \verb'\ps' &  \verb'[:space:] '         \hfill (n, i)\\
\hline \verb'\pu' &  \verb'[:upper:] '         \hfill (n, i)\\
\hline \verb'\pw' &  \verb'[:word:]  '         \hfill (n, i)\\
\hline \verb'\px' &  \verb'[:xdigit:]'         \hfill (n, i)\\
\hline
%%----------------------------------------------------------------------
%%  menu run
%%----------------------------------------------------------------------
\hline
\multicolumn{2}{|r|}{\textsl{\textbf{R}un}} \\
\hline \verb'\rr' & update file, run script         \hfill (n)\\
\hline \verb'\rs' & update file, check syntax       \hfill (n)\\
\hline \verb'\ra' & set command line arguments      \hfill (n)\\
\hline \verb'\rw' & set Perl cmd.\ line switches    \hfill (n)\\
\hline \verb'\rd' & start debugger                  \hfill (n)\\
\hline \verb'\re' & make script executable          \hfill (n)\\
\hline \verb'\rp \h'   & read perldoc for word under cursor     \hfill (n)  \\
\hline \verb'\ri' & show installed Perl modules     \hfill (n)\\
\hline \verb'\rg' & generate Perl module list       \hfill (n)\\
\hline \verb'\ry' & run \verb'perltidy'           \hfill (n, v)\\
\hline \verb'\rm' & run \verb'SmallProf'          \hfill (n)\\
\hline \verb'\rc' & run \verb'perlcritic'         \hfill (n)\\
\hline \verb'\rt' & save buffer with timestamp      \hfill (n)\\
\hline \verb'\rh' & hardcopy buffer                 \hfill (n.v)\\
\hline \verb'\rk' & settings and hotkeys            \hfill (n)\\
\hline \verb'\rx' & set xterm size                  \hfill (n, {\tiny GUI only})\\
\hline \verb'\ro' & change output destination       \hfill (n)\\
\hline
\end{tabular}%
%%~~~~~ TABULAR :  end  ~~~~~~~~~~
%
%%----- TABBING : begin ----------
\begin{tabbing}
Ex commands for \verb'perlcritic' (version 1.01+):\\[.5ex]
\hspace{30mm} \= \hspace{50mm} \= \kill
\texttt{:CriticSeverity}  \> \texttt{1\ \ \ \ \ \ 2\ \ \ \ \ 3\ \ \ \ \ 4\ \ \ \ \ 5} \\
                         \> \texttt{brutal cruel harsh stern gentle} \\
\texttt{:CriticVerbosity} \> \texttt{1} $\ldots$ \texttt{11}\\
\texttt{:CriticOptions}   \> option(s), see \texttt{perlcritic(1)} 
\end{tabbing}
%%----- TABBING :  end  ----------
\end{center}
\end{multicols}
\end{document}
